package com.thb.pay.system.service;

import com.thb.pay.api.sys.vo.req.SysResourcePageReq;
import com.thb.pay.api.sys.vo.req.SysResourceReq;
import com.thb.pay.api.sys.vo.resp.SysResourceVo;
import com.thb.pay.core.utils.PageResult;
import com.thb.pay.db.service.IBaseService;
import com.thb.pay.system.entity.SysResource;

import java.util.List;

/**
 * <p>
 * 系统-资源表 服务类
 * </p>
 *
 * @author lucky
 * @since 2019-07-21
 */
public interface SysResourceService extends IBaseService<SysResource> {

    /**
     * @param pageReq
     * @Description 分页资源列表
     * @Author lucky
     * @data 2019/7/30 23:57
     */
    PageResult<SysResourceVo> findPage(SysResourcePageReq pageReq);

    /**
     * @param parentId 菜单parent
     * @Description
     * @Author lucky
     * @data 2019/7/30 23:57
     */
    List<SysResourceVo> findListByParentId(Long parentId);

    /**
     * @param systemType 系统类型  1：运营平台, 2：商户平台, 3:代理商系统
     * @Description 获取资源类型下的所有资源信息列表
     * @Author lucky
     * @data 2019/7/30 23:59
     */
    List<SysResourceVo> findListBySystemType(Integer systemType);

    /**
     * @param code 授权路径
     * @Description 获取授权路径对应的资源信息
     * @Author lucky
     * @data 2019/7/30 23:56
     */
    SysResourceVo getByPermissionCode(String code);

    /**
     * @param resourceReq
     * @Description 保存菜单信息
     * @Author lucky
     * @data 2019/7/30 23:58
     */
    void save(SysResourceReq resourceReq);

    /**
     * @param resourceReq
     * @Description 更新菜单信息
     * @Author lucky
     * @data 2019/7/30 23:58
     */
    void update(SysResourceReq resourceReq);

    /**
     * @param userId
     * @Description 获取-用户-菜单-列表
     * @Author lucky
     * @data 2019/8/4 0:02
     */
    List<SysResourceVo> findListByUserId(Long userId);

    /**
     * @param roleIds
     * @Description 获取-角色-菜单-列表
     * @Author lucky
     * @data 2019/8/4 0:02
     */
    List<SysResourceVo> findListByRoleIds(List<Long> roleIds);

    /**
     * @param resourceIds
     * @Description 批量删除资源信息
     * @Author lucky
     * @data 2019/8/4 0:02
     */
    void deleteBatchResourceIds(List<Long> resourceIds);




}
